package org.example.provider.controller;

import org.example.provider.entity.Product;
import org.springframework.web.bind.annotation.*;

// 控制器类注解，表示这是一个控制器类
@RestController
// 所有请求路径都以 "/product" 为前缀
@RequestMapping(value = "/product")
public class ProductController {

    /**
     * GET 请求示例
     * 使用 @RequestParam 接收 URL 查询参数
     * 示例：/product/get1?name=手机&price=2999.9
     */
    @RequestMapping(value = "/get1", method = RequestMethod.GET)
    public String get_product(@RequestParam("name") String name, @RequestParam("price") float price) {
        return "利用@RequestParam注解接收参数，商品名称为：" + name + "价格为：" + price;
    }

    /**
     * POST 请求示例
     * 使用 @RequestBody 接收 JSON 格式的请求体数据
     * 示例请求体：
     * {
     *   "name": "电脑",
     *   "price": 8999.9
     * }
     */
    @RequestMapping(value = "/get2", method = RequestMethod.POST)
    public String get_product(@RequestBody Product product) {
        return "利用@RequestBody接收参数，商品名称为：" + product.getName() + "价格为：" + product.getPrice();
    }

    /**
     * GET 请求示例
     * 使用 @PathVariable 从 URL 路径中提取参数
     * 示例：/product/get3/鼠标/99.9/2025-04-05
     */
    @RequestMapping(value = "/get3/{name}/{price}/{date}", method = RequestMethod.GET)
    public String get_product(@PathVariable String name, @PathVariable float price, @PathVariable String date) {
        return "利用@PathVariable注解接收参数，商品名为：" + name + "，价格为：" + price + "，日期为：" + date;
    }
}
